Apache CXF এবং Spring Boot এর মধ্যে ইন্টিগ্রেশন ওয়েব সার্ভিস তৈরি করার জন্য খুবই শক্তিশালী একটি কম্বিনেশন হতে পারে। Apache CXF SOAP এবং RESTful ওয়েব সার্ভিস তৈরি করতে ব্যবহৃত হয়, এবং Spring Boot একটি জনপ্রিয় ফ্রেমওয়ার্ক যা দ্রুত এবং সহজে অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। এই দুইটি প্রযুক্তি একসাথে ব্যবহার করে আপনি একটি শক্তিশালী, স্কেলেবল এবং কনফিগারযোগ্য ওয়েব সার্ভিস অ্যাপ্লিকেশন তৈরি করতে পারেন।
এখানে আমরা দেখব কিভাবে Apache CXF এবং Spring Boot এর মধ্যে ইন্টিগ্রেশন করা যায়, SOAP এবং RESTful ওয়েব সার্ভিস তৈরি করার জন্য।
প্রথমে, একটি Spring Boot প্রজেক্ট তৈরি করতে হবে। আপনি Spring Initializr ব্যবহার করতে পারেন অথবা ম্যানুয়ালি Maven অথবা Gradle কনফিগারেশন ফাইল তৈরি করতে পারেন।
Spring Initializr (https://start.spring.io/) থেকে প্রকল্প তৈরি করতে:
একবার প্রজেক্ট তৈরি হলে, Maven বা Gradle ফাইলের মধ্যে Apache CXF এর ডিপেন্ডেন্সি যুক্ত করতে হবে।
pom.xml ফাইলে Apache CXF এর ডিপেন্ডেন্সি যোগ করুন:
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter</artifactId>
<version>3.3.9</version> <!-- Use the latest version -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
Apache CXF এবং Spring Boot এর ইন্টিগ্রেশনে SOAP ওয়েব সার্ভিস তৈরি করার জন্য একটি সিম্পল SOAP সার্ভিস ক্লাস তৈরি করতে হবে।
package com.example.cxf.service;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public interface HelloWorldService {
@WebMethod
String sayHello(String name);
}
package com.example.cxf.service;
import javax.jws.WebService;
@WebService(endpointInterface = "com.example.cxf.service.HelloWorldService")
public class HelloWorldServiceImpl implements HelloWorldService {
@Override
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
Spring Boot এ Apache CXF ওয়েব সার্ভিসের একটি এন্ডপয়েন্ট তৈরি করার জন্য @Endpoint
অ্যানোটেশন ব্যবহার করতে পারেন।
package com.example.cxf.config;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.endpoint.ServerFactoryBean;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBus;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
@Configuration
public class CxfConfig {
@Bean
public ServletRegistrationBean<CXFServlet> cxfServlet() {
return new ServletRegistrationBean<>(new CXFServlet(), "/services/*");
}
@Bean
public Bus springBus() {
return new SpringBus();
}
@Bean
public HelloWorldService helloWorldService() {
return new HelloWorldServiceImpl();
}
@Bean
public Server server() {
ServerFactoryBean factory = new ServerFactoryBean();
factory.setServiceClass(HelloWorldService.class);
factory.setServiceBean(helloWorldService());
factory.setAddress("/HelloWorldService");
return factory.create();
}
}
এই কনফিগারেশন ক্লাসে:
CXFServlet
: এটি Apache CXF এর জন্য সার্ভলেট, যেটি সমস্ত SOAP রিকোয়েস্ট হ্যান্ডেল করবে।ServerFactoryBean
: এটি সার্ভিসের জন্য একটি সার্ভার তৈরি করে, যা ক্লায়েন্টদের সাথে SOAP রিকোয়েস্ট এবং রেসপন্স যোগাযোগ পরিচালনা করে।এখন Spring Boot অ্যাপ্লিকেশন রান করুন। @SpringBootApplication
ক্লাসে main
মেথড থাকবে, যেটি Spring Boot অ্যাপ্লিকেশন স্টার্ট করবে।
package com.example.cxf;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class CxfSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(CxfSpringBootApplication.class, args);
}
}
আপনি এখন Apache CXF এবং Spring Boot এর মাধ্যমে SOAP ওয়েব সার্ভিস তৈরি করেছেন। এটি পরীক্ষা করতে আপনি SOAP UI বা Postman ব্যবহার করতে পারেন। উদাহরণস্বরূপ, SOAP UI এ SOAP রিকোয়েস্ট পাঠানোর জন্য এন্ডপয়েন্ট ব্যবহার করুন:
http://localhost:8080/services/HelloWorldService?wsdl
Apache CXF দিয়ে RESTful Web Service তৈরি করতে হলে JAX-RS (Java API for RESTful Web Services) ব্যবহার করতে হবে।
package com.example.cxf.service;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
@Path("/hello")
public interface HelloWorldRestService {
@GET
String sayHello(@QueryParam("name") String name);
}
package com.example.cxf.service;
import javax.ws.rs.Path;
@Path("/hello")
public class HelloWorldRestServiceImpl implements HelloWorldRestService {
@Override
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
package com.example.cxf.config;
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RestCxfConfig {
@Bean
public JAXRSServerFactoryBean restServer() {
JAXRSServerFactoryBean factory = new JAXRSServerFactoryBean();
factory.setServiceClass(HelloWorldRestService.class);
factory.setServiceBean(new HelloWorldRestServiceImpl());
factory.setAddress("/rest");
return factory;
}
}
আপনি এখন Spring Boot অ্যাপ্লিকেশনে RESTful ওয়েব সার্ভিস তৈরি করেছেন। এটি পরীক্ষা করতে আপনি Postman বা অন্য যেকোনো REST ক্লায়েন্ট ব্যবহার করতে পারেন। উদাহরণস্বরূপ, একটি GET রিকোয়েস্ট পাঠাতে পারেন:
http://localhost:8080/services/rest/hello?name=John
এতে রেসপন্স হিসেবে পাবেন:
Hello, John!
Apache CXF এবং Spring Boot এর মধ্যে ইন্টিগ্রেশন করার মাধ্যমে আপনি SOAP এবং RESTful ওয়েব সার্ভিস খুব সহজেই তৈরি করতে পারেন। Spring Boot ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য অত্যন্ত কার্যকরী একটি ফ্রেমওয়ার্ক, এবং Apache CXF এর মাধ্যমে SOAP এবং RESTful ওয়েব সার্ভিস দ্রুত ও কার্যকরীভাবে ইমপ্লিমেন্ট করা যায়।